Skip to content

[pull] main from bootc-dev:main#145

Merged
pull[bot] merged 2 commits into
TheTechOddBug:mainfrom
bootc-dev:main
Apr 24, 2026
Merged

[pull] main from bootc-dev:main#145
pull[bot] merged 2 commits into
TheTechOddBug:mainfrom
bootc-dev:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 24, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Add a new `bootc loader-entries set-options-for-source` command that
manages kernel arguments from independent sources (e.g. TuneD, admin)
by tracking ownership via `x-options-source-<name>` extension keys in
BLS config files. This solves the problem of karg accumulation on bootc
systems with transient /etc, where tools like TuneD lose their state
files on reboot and cannot track which kargs they previously set.

The command stages a new deployment with the updated kargs and source
keys. The kargs diff is computed by removing the old source's args and
adding the new ones, preserving all untracked options. Source keys
survive the staging roundtrip via ostree's `bootconfig-extra`
serialization (ostree >= 2026.1, version check active).

Staged deployment handling:
- No staged deployment: stages based on the booted commit
- Staged deployment exists (e.g. from `bootc upgrade`): replaces it
  using the staged commit and origin, preserving pending upgrades while
  layering the source kargs change on top

Includes a multi-reboot TMT integration test covering: input validation,
kargs surviving staging roundtrip, source replacement, multiple sources
coexisting (including pre-reboot), source removal, idempotency, system
kargs preservation, empty --options vs no --options, and staged
deployment interaction with bootc switch.

Example usage:
  bootc loader-entries set-options-for-source --source tuned \
    --options "isolcpus=1-3 nohz_full=1-3"

Closes: #899
See: ostreedev/ostree#3570

Assisted-by: OpenCode (Claude Opus 4.6)
Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
…xtra

The loader-entries set-options-for-source feature requires ostree >= 2026.1
for the bootconfig-extra serialization that preserves x-options-source-*
BLS keys through staged deployment roundtrips.

ostree 2026.1 is not yet in the stable repos for any of the supported
platforms. This commit adds a temporary block to install it from:
- CentOS Stream 9/10: direct Koji RPM URLs (c9s-candidate/c10s-candidate)
- Fedora 43/44: updates-testing repo (Bodhi)

The block is guarded by a version check (rpm -q ostree | grep "2026\."),
so once base images ship ostree >= 2026.1, this is a no-op and can be
safely removed without urgency.

xref ostreedev/ostree#3570

Assisted-by: OpenCode (Claude Opus 4.6)
Signed-off-by: Joseph Marrero Corchado <jmarrero@redhat.com>
@pull pull Bot locked and limited conversation to collaborators Apr 24, 2026
@pull pull Bot added the ⤵️ pull label Apr 24, 2026
@pull pull Bot merged commit 8ef2ae9 into TheTechOddBug:main Apr 24, 2026
0 of 2 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant